Computer-aided design (CAD) software allows a user to construct and manipulate complex three-dimensional (3D) models. A number of different modeling techniques can be used to create a 3D model. One such technique is a solid modeling technique, which provides for topological 3D models where the 3D model is a collection of interconnected topological entities (e.g., vertices, edges, and faces). The topological entities have corresponding supporting geometrical entities (e.g., points, trimmed curves, and trimmed surfaces). The trimmed surfaces correspond to respective topological faces bounded by edges. CAD systems may combine solid modeling and other modeling techniques, such as parametric modeling techniques. Parametric modeling techniques can be used to define various parameters for different features and components of a model, and to define relationships between those features and components based on relationships between the various parameters.
A design engineer is a typical user of a 3D CAD system. The design engineer designs physical and aesthetic aspects of 3D models, and is skilled in 3D modeling techniques. The design engineer creates parts and may assemble the parts into a subassembly or an assembly. A subassembly may also consist of other subassemblies. An assembly is designed using parts and subassemblies. Parts and subassemblies are hereinafter collectively referred to as components.
During the design process, an engineer may simulate the design of a model to analyze and evaluate the real-world performance of the product being designed. Such a simulation may be executed by an engineering simulation process, examples of which are SolidWorks® Motion, SolidWorks® Simulation Xpress, and SolidWorks® Simulation, which use the CAD model data to set up and execute motion or, simulation studies and are available from Dassault Systemes SolidWorks Corporation of Waltham, Mass. A motion simulation may be performed in a two-dimensional (2D) or a three-dimensional modeling environment.
Solving for the proper motion of a CAD assembly model is difficult. Predetermined starting and ending positions may exist. In addition, a number of other positions may be defined and required by the design intent or by the interaction of different parts in the assembly. Solving for the proper motion when various positions of an assembly are required becomes exceedingly difficult. Currently, a user may iteratively modify a sketch of a part in an assembly in an attempt to specify predefined start and end positions. The system may not, however, have the ability to precisely solve for the exact start and end positions. Additionally, only a single view of the sketch is available for the start position and the end position, as well as intermediate positions of the assembly in motion.
While designing a mechanism, usually there are many design parameters and one or a few design targets. Examples of such design parameters are lengths and dimensions. Examples of design targets can be specific target positions, constraint values at various design positions, forces, torques, vibration responses, and tracking errors.
The design parameters are chosen in such a way as to meet certain design requirements, for example, satisfying various constraints for different positions of the mechanism. The values of the design parameters cannot usually be solved in any obvious and simple way. Having different constraints active in different positions of the mechanism makes this problem even more difficult to solve because the user cannot easily determine if all the constraints are satisfied at the same time.
The values selected for the design parameters usually affect the one or more design targets in a very complex fashion. A user generally has difficulty selecting the right combination of these design parameters so that the one or more design targets are achieved satisfactorily. As a result, the approach taken by the user is iterative. The user selects a set of values for these design parameters based on past experience or engineering judgment. The design targets are evaluated for that choice of design parameters. If the design targets are achieved satisfactorily, the process stops otherwise a new design iteration begins with a different set of design parameter values and the process continues until the design targets are met.
This approach is iterative, slow, and computationally expensive. A method and system that computes the values of the design parameters during the design workflow so that the design targets are met with a minimal amount of design iterations would be valuable functionality for a computer-aided design and motion simulation system.